The present invention relates to a file control system for a virtual machine system in which a dedicated memory space is provided between an operating system of a virtual machine and a control means, such as virtual machine monitor for controlling the virtual machine, for inputting of files used for the operating system, the memory space being managed by a specialized communication means or by the virtual machine monitor, so that the management of the files possessed by the operating system can be performed on the side of the virtual machine monitor and the inputting/outputting of the files can be facilitated.
In a virtual machine system, a plurality of logical machines (referred to as a virtual machine) are created within a single system, each of the virtual machines permitting the conventional operating systems (hereinafter referred to as OS in abbreviation) to operate without modification. To realize such a virtual machine, a virtual machine monitor (hereinafter abbreviated to VMM) for controlling the virtual machine is imparted with capabilities for virtualize hardware resources such as a central control unit (CPU) and a memory. More specifically, the CPU time slots are uniformly allotted to the individual virtual machines through time sharing control, while memory spaces are created according to the virtual memory technique and dedicated to the virtual machines, respectively. These memory spaces are made independent of one another so that destruction of any given memory by other virtual machines (i.e. those to which the memory space of concern is not dedicated) is prohibited. There are two input/output processing methods, one is a dedicated device method according to which real input/output devices are employed as virtual input/output devices connected to the virtual machines, respectively, and the other is a multiplexing method according to which one real input/output device is used as a virtual input/output device in common to the plurality of virtual machines.
The former may be typically a tape device or a direct access storage device (referred to as DASD in abbreviation) such as a magnetic disc. The latter or multiplexing system may be typically a unit recorder device such as a card reader, line printer and the like. A basic concept of the virtual machine system is illustrated in FIG. 1. In a real machine 11, the VMM (virtual machine monitor) 14 which is a control program of virtual machines is operative to create the virtual machines 12. Since each of these virtual machines 12 is capable of realizing the functions substantially comparable to those of the real machine 11, conventional OSs 15 can be made operative without modification. Further, owing to the extended machine features created by the OSs 15, execution of user programs 16 is rendered possible. It should be mentioned that interfaces 17 between the real machine 11 and the VMM 14 as well as between the virtual machines 12 and OSs 15 are machine interfaces, respectively, while interfaces 18 between the extended machine features 13 and the user's programs 16 are OS interfaces, respectively.
Next, input/output procedure of files in this virtual machine system will be elucidated by referring to FIG. 2 of the accompanying drawings. From the stand point of the user's program, the function of the OS concerning the input/output of file cna be divided into data management providing simplified procedure for the input/output of a file and an input/output (I/O) supervisor serving for input/output scheduling and device management. FIG. 2 illustrates a manner in which the inputting/outputtting (I/O) of a file is performed by way of the data management in accordance with data input/output requests (e.g. data management macro-instruction such as READ, WRITE request) issued from the user program 16. In the data management, preparation of an input/output (I/O) buffer is conducted in accordance with a user request (step 211), while an input/output (I/O) channel program describing the file inputting/outputting (I/O) operation is created (step 212).
Subsequently, control is transferred to the I/O supervisor by making use of an OS interfacing instruction such as supervisor call (SVC) instruction. The I/O supervisor issues a start I/O instruction (SIO instruction) in succession to the I/O scheduling (step 221). The SIO instruction is a privileged instruction which, when issued from the virtual machine, is executed in terms of a virtual privileged instruction, i.e. the non-privileged instruction. Consequently, simulation processing of the virtual SIO instruction is performed at the time of interruption at which a privileged instruction exception is issued to the VMM. The simulation processings are as follows: